\documentclass[12pt]{article}

\usepackage{sbc-template}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage{graphicx,url}
\usepackage{listings}

\sloppy

\title{Internacionalização de aplicações Web: uma ferramenta para acelerar a tarefa de tradução em um ambiente de aplicação médica}

\author{Maria Angélica de Oliveira Camargo-Brunetto\inst{1}, Fabrício Ferracioli\inst{1}}


\address{Departamento de Computação -- Universidade Estadual de Londrina
  (UEL)\\
  Londrina -- PR -- Brasil
}

\begin{document}

\maketitle

\begin{resumo}
Globalização, internacionalização e localização são essenciais para a disseminação de aplicações \textit{web}. Apesar das várias técnicas e ferramentas para auxiliar a internacionalização, a tarefa de agregar características culturais e fornecer a mesma aplicação em diversos idiomas são trabalhos onde é necessária a interferência humana, o que acaba sendo um fator que dificulta esses processos. Esse artigo descreve uma estratégia para auxiliar na tradução de uma aplicação \textit{web} do domínio da saúde, através de uma ferramenta desenvolvida e embutida na própria aplicação.
\end{resumo}

\begin{abstract}
Globalization, internationalization and localization are essential to web applications widespreading. Despite the development of several techniques and tools of internationalization, the aggregating cultural features and providing the same application in several idioms tasks are jobs where humans interference are needed, wich can difficult the process. This paper describes a strategy to help the translation of a web application in the medical domain, through developed and built-in tool in the application itself.
\end{abstract}

\section{Introdução}
Em grande parte dos casos, as aplicações \textit{Web} tornam-se mais úteis quando utilizadas por um grande número de usuários, sem que o idioma seja um empecilho. Internacionalização é uma característica cada vez mais buscada em aplicações \textit{web}, devido ao caráter mundial da \textit{Web}.

Como um \textit{web site} pode ser acessado por qualquer pessoa em qualquer parte, é interessante adicionar recursos que possam ser acessíveis mundialmente, ou pelo menos em alguns países. Entretanto, para que isso seja possível é necessário introduzir alguns conceitos sobre internacionalização. São utilizados três termos nesse contexto \cite{deTroyer2004}: (i) globalização, (ii) internacionalização e (iii) localização.

Segundo a \textit{Localization Industry Standards Association} (LISA) \footnote{http://www.lisa.org/What-Is-Globalization.48.0.html}, a Globalização se preocupa com a  disseminação de algo em diversos países, fazendo o conteúdo aplicável e usável nos mesmos. Internacionalização\footnote{http://www.lisa.org/Internationalization.58.0.html} se refere as tarefas preparatórias para fazer da localização um processo mais fácil, rápido, com maior qualidade e menor custo.

he second phase, localisation, «refers to the actual adaptation of the product for a specific market». The localisation phase involves, among other things (see below and Internationalisation and localisation), the four issues LISA association describes as linguistic, physical, business and cultural, and technical issues.

Localização\footnote{http://www.lisa.org/Localization.61.0.html} trata da adaptação de um produto a um mercado específico, envolvendo quatro aspectos: lingístico, físico, negócios e cultura e questões técnicas. A tradução é uma das tarefas que compõem a localização, sendo considerada a mais custosa. Apesar de consumir mais recursos é essencial para globalização, sendo em alguns casos utilizada no mesmo conceito de globalização, internacionalização e localização \cite{deTroyer2004}.

De acordo com o \textit{Miniwats Marketing Group}\footnote{http://www.internetworldstats.com/stats.htm}, em Março de 2009 a quantidade de usuários da Internet no mundo era maior que 1 bilhão e 500 milhões, sendo mais de 80\% destes concentrados na América do Norte, Ásia e Europa. Esses números justificam a atenção a ser dada a usuários com idiomas e culturas diferentes das nativas. Algumas razões para justificar a importância de sites multi-idioma são \cite{Alvarez1998}: (i) é uma oportunidade para conseguir parcerias em outros países; (ii) de uma perspectiva comercial, é possível para pequenas companias criar presença global facilmente. Em contrapartida, grandes companias não parecem ser tão competitivas quando não possuem sites internacionalizados; (iii) de um ponto de vista acadêmico, pode ser uma maneira de atrair estudantes internacionais para uma universidade e disseminar informação para a comunidade acadêmica.

Algumas organizações membro da LISA possuem receitas internacionais que correspondem a 70\% do que é detido no total pelo grupo, fator essencial para a liderança mundial e estratégias de mercado, mostrando a importância da localização\footnote{http://www.lisa.org/Why-Globalize.50.0.html} nesse cenário.

De maneira a oferecer aplicações \textit{web} compreensíveis, obter mais usuários e também uma maior aceitação deles, é particularmente interessante adicionar características culturais além dos multi-idiomas as aplicações \cite{Ishida2007b}.

Visto que a tradução é uma a tarefa custosa, existem diferentes estratégias para sua realização. Sistemas automatizados podem ser encontrados em \textit{Content Management Systems} (CMS) e \textit{Frameworks} além das implementações específicas do GNU gettext \footnote{http://www.gnu.org/software/gettext/}. Mesmo sendo efetivos em seus objetivos, esses sistemas possuem limitações em recursos para a tradução. A principal é a necessidade do tradutor ter conhecimento não apenas do domínio do \textit{site} no idioma desejado, mas também da estrutura utilizada para armazenamento e formatação do texto traduzido, o que não é uma característica comum em pessoas sem conhecimento computacional.

Tendo em vista esse problema, é possível que parte da equipe de desenvolvimento de uma aplicação realize a tarefa de tradução, apesar dessa solução retirar parte da equipe de suas funções originais. Essa situação se agrava quando o \textit{site} trata de assuntos de domínios especializados, como por exemplo conteúdo médico. Embora tendo conhecimento do idioma alvo de tradução, pode ocorrer de nem sempre o tradutor ter conhecimento do domínio abordado, possibilitando a ocorrência de graves inconsistências na tradução.

Portanto, é interessante a busca por estratégias e ferramentas que retirem a responsabilidade técnica dos tradutores durante a execução da tradução. Este artigo apresenta uma estratégia para facilitar a tradução de aplicações \textit{web} com domínios de conhecimento específico e uma ferramenta de tradução que foi desenvolvida e embutida em uma aplicação \textit{web} da área médica.

\section{Apresentação do Problema}\label{problema}

O SacarWeb (Software para Avaliação Cardio-Respiratória na Web) é uma aplicação do domínio de conhecimento cardio-respiratório que realiza avaliações de pacientes com doenças crônicas \cite{Amorim2006}. A aplicação foi desenvolvida utilizando principalmente a linguagem de programação PHP (PHP: \textit{Hypertext Preprocessor})\footnote{http://www.php.net} e o idioma Português Brasileiro. Existe um interesse especial que o SacarWeb seja utilizado por uma grande quantidade de pessoas, visto que um de seus objetivos é construir um grande banco de dados clínico compartilhado entre diferentes unidades de saúde \cite{Rossi2005}.

Durante o desenvolvimento do SacarWeb observou-se a necessidade de divulgar a aplicação em outros países, através de cooperação por parcerias. Pensando na boa aceitação em diferentes regiões, foi estabelecido o uso de diferentes padrões de interpretação para os exames, específicos para alguns países. Essa estratégia faz parte do processo de internacionalização, executado em alguns módulos do SacarWeb como o Teste de Função Pulmonar e o Pressões Respiratórias. Os padrões de interpretação utilizados são o Brasileiro, Americano e Europeu.

Apesar desses esforços, foi observado que o SacarWeb é um caso típico de aplicação \textit{Web} cujo domínio de conhecimento é específico e que necessita ser localizado, uma vez que é desejável sua utilização por pesquisadores de institutos clínicos de diferentes países. Para isso seria necessária a tarefa de tradução, dificultada pela presença de termos específicos do domínio de conhecimento médico.

\subsection{Estratégia Inicial}

Inicialmente, foi utilizada uma estratégia recomendada pelo W3C\footnote{http://www.w3.org}: a definição de sentenças utilizadas no software através de arquivos com definições estáticas. No SacarWeb, isso foi realizado utilizando o recurso de constantes da linguagem de programação PHP.

Nessa abordagem foi definido um identificador para cada sentença, assim como seu valor no idioma desejado. Para cada idioma alvo de tradução, gera-se um arquivo contendo os mesmos identificadores, porém com os valores traduzidos no respectivo idioma. O arquivo apropriado será selecionado de acordo com o idioma preferido do usuário.

Essa abordagem apresentou algumas desvantagens: (i) qualquer edição de sentenças deveria ser realizada diretamente no(s) arquivo(s) do(s) respectivo(s) idioma(s), requerendo do tradutor, conhecimento da sintaxe da linguagem de programação usada nos arquivos de idiomas; (ii) gerenciamento manual das sentenças traduzidas, já que para cada idioma, tem-se um arquivo e qualquer modificação de sentença deveria ser editada em todos arquivos de idiomas. Como todas estas tarefas deveriam ser feitas manualmente, esta abordagem poderia se tornar uma grande fonte de erros.

A falta de automatização dificultava, por exemplo, o rastreamento de quais sentenças não estavam traduzidas, gerando duplicações e, nos piores casos, problemas de sintaxe que faziam a aplicação parar.

\subsection{Estratégia Proposta}
Tendo em vista as dificuldades da abordagem utilizada, foi necessário rever a estratégia de localização. Os objetivos a serem alcançados nesta nova abordagem são: (i) facilidade no gerenciamento dos arquivos de sentenças; (ii) colaboração entre os diferentes tipos de especialistas presentes na equipe de desenvolvimento do SacarWeb; (iii) facilidade de utilização por parte dos usuários especialistas da saúde; (iv) fidelidade das traduções, principalmente as relacionadas a termos médicos; (v) facilidade de integração com o SacarWeb.

A estratégia proposta foi baseada no fato do SacarWeb apresentar dois tipos de sentenças, as de utilização geral da aplicação e as específicas do domínio de conhecimento da saúde. As sentenças gerais normalmente estão presentes em botões de navegação, mensagens de confirmação ou avisos. Já as pertencentes ao domínio da saúde são de extrema importância para a interpretação correta dos exames e avaliações disponíveis no SacarWeb.

Levando em conta essa separação de sentenças, observou-se que a tradução poderia ser agilizada, considerando-se duas categorias de tradutores: especialistas da área médica e de computação. A sugestão é que boa parte dos tradutores sejam os próprios usuários do sistema, o que é uma prática encorajada, uma vez que ao participar do processo de desenvolvimento do software, os objetivos dele são atingidos mais rapidamente \cite{Hulse2004}.

Duas dificuldades também foram consideradas durante a proposta, levando em conta as características desejadas e a abordagem anterior: (i) especialistas da área da saúde ao editar arquivos de código fonte com sentenças a serem traduzidas, deverão ter conhecimento adicional de computação além dos necessários à tradução (idioma e área de conhecimento da saúde); (ii) especialistas da área de computação traduzindo sentenças da área médica, aumenta a possibilidade de traduções com baixa fidelidade.

A estratégia proposta foi implementada através de uma ferramenta de localização embutida no SacarWeb, que será descrita na seção \ref{localization_sacarweb}. Salienta-se que a estratégia proposta, bem como as técnicas usadas na ferramenta podem ser aproveitadas para qualquer aplicação \textit{web} com domínio de aplicação específica. A figura \ref{fig:arquitetura} mostra a arquitetura do SacarWeb com o módulo de internacionalização adicionado, representado pelas linhas pontilhadas. A figura mostra a interação o módulo e o usuário Tradutor, que realiza a tradução das sentenças que serão armazenadas num XML contendo somente um idioma, arquivo que é validado através de um XML Schema. Ao Administrador Local de uma instituição que utiliza o SacarWeb é dada a opção de selecionar o idioma a ser utilizado na aplicação, opção que é resgatada para adaptação da interface para todos os usuários pertencentes aquela instituição.

\begin{figure}[ht]
\centering
\includegraphics[width=1\textwidth]{arquiteturaSacarwebTradutor.png}
\caption{Arquitetura do SacarWeb com a adição do módulo de internacionalização}
\label{fig:arquitetura}
\end{figure}

\section{Trabalhos Relacionados}
Um pacote de internacionalização de \textit{sofware} muito utilizado é o GNU gettext, que consiste numa série de ferramentas integradas para programadores e tradutores. O conjunto de ferramentas fornece um \textit{framework} que ajuda na produção de mensagens multi-idioma por outros pacotes GNU. Para utilizar o gettext, é necessário ao programador identificar as sentenças que deverão ser traduzidas no código fonte do software e gerar arquivos POT (\textit{Portable Object Template}) que devem atender a uma estrutura específica.

Uma vez que o template é criado, o programador deve editar o código fonte do software, especificando o uso do gettext. Após isso, um dos programas que fazem parte do gettext gera um arquivo com as sentenças de origem, com ponteiros para os pontos onde elas deverão ser utilizadas no código fonte e, todas as traduções necessárias até o momento estão vazias. Nesse ponto é gerado o arquivo PO, que contém inicialmente a cópia das sentenças de origem. Esse arquivo será preparado por um programador, para posterior edição por um tradutor. A tarefa de edição dos arquivos PO pode ser facilitada através de editores específicos, como o KBabel\footnote{http://kbabel.kde.org/} e o poEdit\footnote{http://www.poedit.net/}. Uma das grandes vantagens em se utilizar editores são seus recursos adicionais, como verificação ortográfica e sintática, validação do arquivo de entrada, entre outros.

O GNU gettext é altamente utilizado, devido a sua eficiência em lidar com internacionalização. Ele está disponível em diversas linguagens de programação, incluindo o PHP. Um exemplo de como utilizar o gettext em aplicações \textit{web} desenvolvidas em PHP pode ser visto em \cite{ibmphp2007}.

Outra técnica proposta em \cite{Parr2006} é o tratamento do texto como um recurso, separado do código fonte e acessível ao tradutor, de maneira dinâmica. O uso dessa técnica pode ser visto em \cite{ibmphp2007} com a linguagem PHP. Nessa abordagem, a manutenção da aplicação é facilitada para os programadores. Entretanto, algumas partes expressivas de código HTML são mantidas no PHP, o que é uma característica não desejável devido a separação em camadas de aplicações web. Como solução para esse problema, o autor propõe a utilização do gettext.

\subsection{Problema do gettext}
No contexto do SacarWeb, o gettext certamente seria uma ferramenta aplicável e efetiva. Entretanto, devido às necessidades levantadas para o módulo de internacionalização, ele acabou não se tornando uma alternativa viável. Um trecho arquivo PO utilizado na implementação do gettext para PHP pode ser visto no \textit{listing} \ref{php_po}.

\lstset{language=PHP,showstringspaces=false,caption=Trecho de arquivo PO para PHP,label=php_po}
\begin{lstlisting}
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
#: RSSHandler.php:31
msgid "News type is not valid."
msgstr "Die Nachrichtkategorie ist falsch."
#: RSSHandler.php:37
msgid "found %d fatal error"
msgid_plural "found %d fatal errors"
msgstr[0] "s'ha trobat %d error fatal"
msgstr[1] "s'han trobat %d errors fatals"
\end{lstlisting}

O caracter '\#' denota um comentário de linha. A pessoa responsável pela tradução deve identificar cada ocorrência de uma sentença com a string 'msgid', que contém o valor de origem e editar a próxima linha, começando com 'msgstr', preenchendo com a sentença correspondente traduzida no idioma desejado. São possíveis algumas variações nessa estrutura, como a identificação de sentenças na forma pluralizada, identificadas por 'msgid\_plural'. Também é possível notar a presença de caracteres utilizados pela linguagem de programação, como '\%d' e identificadores 'msgstr[0]'. Palavras chave não podem ser modificadas, uma vez que são essenciais para o funcionamento da aplicação, além disso, o arquivo deve atender a sintaxe requerida nos templates PO, além da sintaxe do idioma desejado. As linhas delimitadas por aspas duplas representam metadados.

Toda essa complexidade e quantidade de informação contida em um arquivo PO, pode desencorajar uma pessoa que não possui conhecimentos de computação a participar do processo de tradução de um \textit{software}. Mesmo que isso não ocorra, a probabilidade de uma pessoa com essas características errar durante a edição de um arquivo PO também é grande, o que pode ser a causa de erros difíceis de detectar em uma aplicação. A utilização de editores específicos pode ajudar nesse segundo problema, entretanto é necessário realizar o \textit{download} e a configuração do ambiente, que pode diferir entre diferentes tradutores e causar conflitos entre arquivos. Esse tipo de tarefa também pode desencorajar um potencial tradutor com conhecimento do idioma desejado, visto que a maioria das pessoas não está acostumada a configurar ambientes de programação.

Apesar desse tipo de problema, graças a comunidade de \textit{software} livre, o gettext é extremamente efetivo e utilizado em aplicações de todos os tipos. Como exemplo temos a distribuição de Linux openSuse\footnote{http://i18n.opensuse.org}, o gerenciador de janelas KDE\footnote{http://i18n.kde.org}, o \textit{framework} CakePHP\footnote{http://cakephp.org/}, entre outros. Entretanto, para o SacarWeb, a necessidade da edição dos arquivos em um ambiente colaborativo entre profissionais da área da saúde e da área da computação, acabou sendo um limitante, uma vez que a utilização por parte dos profissionais da saúde seria dificultada.

\section{Ferramenta de Tradução do SacarWeb}\label{localization_sacarweb}
A ferramenta de tradução do SacarWeb é responsável por todo o gerenciamento dos idiomas, além da marcação correta do código HTML, uma vez que quanto mais um conteúdo é marcado corretamente com informações sobre idioma, mais útil e disseminado ele será \cite{Ishida2007}. Algumas questões de implementação foram consideradas: (i) tratamento do texto como um recurso, separado do código HTML, ficando assim facilmente acessível ao tradutor \cite{Parr2006}; (ii) tratamento de textos e informações sobre imagens como dados dinâmicos, de maneira que o tradutor possa trabalhar independentemente; (iii) representação dos dados de uma forma a facilitar a manipulação e manutenção das sentenças.

O \textit{eXtensible Markup Language} (XML) atendeu os três requisitos anteriores, principalmente pela existência da API DOM, que possui uma grande quantidade de métodos que facilitam a manipulação desse tipo de arquivo, disponível em diversas linguagens de programação.

A ferramenta de tradução de sentenças é dividida em módulos com objetivos secundários. A figura \ref{fig:fluxo} descreve o fluxo de dados entre eles.

\begin{figure}[ht]
\centering
\includegraphics[width=1\textwidth]{DiagramaTradutor.png}
\caption{Fluxo de dados do módulo de internacionalização}
\label{fig:fluxo}
\end{figure}

Os arquivos PHP com as sentenças utilizadas anteriormente foram aproveitados, uma vez que armazenavam todas as sentenças do SacarWeb. A conversão manual desses arquivos para o formato desejado em XML seria um grande trabalho. Para isso, foi desenvolvido um programa em Java que recebe como entrada o arquivo PHP contendo as sentenças do SacarWeb, gerando como saída o documento XML. A estrutura do XML gerado é semelhante ao \textit{listing} \ref{sentence}:

\lstset{language=XML,breaklines=true,caption=Estrutura de um arquivo de sentenças,label=sentence}
\begin{lstlisting}
<strings>
   <sentenca xml: id="Sentence ID">
     <traducao xml: lang="pt-BR">Brazilian Portuguese Sentence</traducao>
     <traducao xml: lang="en">English Sentence</traducao>
   </sentenca>
</strings>
\end{lstlisting}

A gramática desse documento é controlada por um XML \textit{Schema}, utilizado para validação da saída do tradutor e das operações a serem realizadas sobre os arquivos posteriormente.

Uma vez que os papéis de tradução foram divididos entre os especialistas da saúde e da computação, os arquivos com sentenças também sofreram essa divisão. São dois os tipos de arquivo: com sentenças de escopo geral e do domínio da saúde. Através da separação entre os tipos de sentenças, em diferentes arquivos e associados a diferentes tipos de usuário, espera-se obter uma melhor consistência na tradução, uma vez que as expressões técnicas do domínio da saúde são reconhecidas mais facilmente por um especialista da área, assim como suas possíveis traduções.

A próxima etapa do fluxo, a divisão do XML gerado pelo programa Java, requer procedimentos manuais que atendam o critério descrito anteriormente. Para isso é preciso uma avaliação semântica e da utilização da sentença dentro do SacarWeb.

Outro processo manual necessário foi a modificação da aplicação, uma vez que a estratégia anterior estava implementada nativamente no PHP. Alterações foram realizadas para utilizar os métodos associados aos arquivos XML. Para facilitar a utilização do recurso, foram implementados métodos de chamada em uma classe jé existente na aplicação, responsável pelas operações com a interface. Essa classe realiza as chamadas à nova classe, criada apenas para manipulação das sentenças. Essa abordagem tornou mais fácil a adaptação uma vez que não foi necessária uma nova instância da classe de tradução em todos os arquivos de manipulação de interface.

A modificação necessária de maior expressividade foi a alteração das chamadas de constantes para chamadas de métodos. Apesar de simples, pois os identificadores das sentenças permaneciam os mesmos, o trabalho levou algum tempo, uma vez que a quantidade de sentenças era elevada.

Finalmente, foram implementadas as telas de manipulação de setenças, utilizadas pelos usuários responsáveis pela tradução.

Ressaltamos que algumas etapas só foram realizadas devido a presença do código legado oriundo da primeira abordagem de internacionalização, que impossibilitava a aplicação direta da solução desenvolvida e precisava ser reaproveitado para evitar retrabalho. Em uma aplicação em estágio inicial de desenvolvimento seriam necessárias somente as seguintes etapas:
\begin{itemize}
 \item Obtenção do módulo e schemas XML
 \item Instalação e configuração do módulo, compreendida basicamente pela definição da localização dos arquivos XML
\end{itemize}
Após a realização dessas tarefas, o desenvolvimento é realizado de modo natural, utilizando os recursos disponibilizados pelo módulo durante a programação.

\section{Resultados e Discussão}
Foi implementada para o SacarWeb uma ferramenta de internacionalização que utiliza XML como forma de representação de dados nos idiomas atendidos por ele. Visando maior fidelidade das traduções, um dos requisitos atendidos foi a possibilidade da participação dos usuários no processo, devido à presença de sentenças específicas da área da saúde.

Após a implementação, o módulo foi disponibilizado aos usuários e pouco tempo
depois (NESTE PONTO ACREDITO QUE A AFIRMAÇÃO DE ``POUCO TEMPO DEPOIS'' NÃO DÁ
CREDIBILIDADE AO QUE ESTÁ SENDO DITO, CREIO QUE O TEMPO FICARIA MELHOR. A
TRADUÇÃO DEMOROU MAIS OU MENOS UM MÊS PELO QUE ME LEMBRO, OU ESTOU ENGANADO?)
100\% das sentenças específicas da área da saúde já estavam traduzidas para o
idioma inglês. Acreditamos que o grau de fidelidade das traduções é alto, visto
que apenas usuários especialistas em saúde realizaram este processo. Uma vez que
a tarefa foi realizada com agilidade, acreditamos que o módulo obteve sucesso,
pois seus objetivos foram alcançados.

Outros pontos relevantes foram a facilidade dos usuários em ajudar no processo de tradução e a eliminação da necessidade de conhecimentos fora do escopo do idioma traduzido.

A semelhança com as aplicações do ramo encontradas após a finalização da implementação do módulo aumenta a confiança no sucesso do módulo. Uma delas está disponível no site da Mozilla \textit{Foundation}\footnote{http://support.mozilla.com/}. Nele, são oferecidos recursos para tradução de textos de ajuda de produtos da empresa para a comunidade. Todo o programa roda \textit{online}, e várias pessoas podem colaborar. Entretanto, é necessário algum tempo para aprender a sintaxe a ser utilizada para edição de \textit{strings} de formatação, semelhantes às encontradas no gettext.

O módulo disponibilizado no SacarWeb é muito semelhante à ferramenta disponível no agregador de projetos \textit{open source} launchpad\footnote{https://translations.launchpad.net/}. Trata-se de uma aplicação bastante expressiva, sendo capaz de oferecer sugestões de possíveis traduções para uma sentença, baseada em outras fornecidas para a mesma string em projetos hospedados pelo site.

Após a finalização das tarefas pretendidas com o módulo de internacionalização do SacarWeb foi encontrada uma especificação de marcação do W3C específica para internacionalização de documentos com marcação baseada em XML, chamada Internacionalization Tag Set (ITS)\cite{ITS2007}. Através de uma abordagem que utiliza marcação XML, semelhante à desenvolvida no SacarWeb, entretanto com maior poder de tradução, é possível realizar a tarefa de localização de documentos para qualquer idioma. Por ser um meio mais robusto, estar em conformidade com outros padrões do W3C e ser um padrão internacional recomendado pelo órgão, recomenda-se como trabalho futuro a utilização da especificação ITS como base dos arquivos de sentenças XML utilizados pelo SacarWeb.

Sendo assim, os resultados alcançados remetem às necessidades levantadas para o desenvolvimento do módulo: facilidade na edição das sentenças, abstração de linguagens de programação e/ou marcação e fácil acoplamento da ferramenta, caracterizando então o sucesso do módulo.

\section{Conclusão}

Este artigo apresentou uma estratégia para agilizar a tradução de aplicações Web de domínios de conhecimento específico bem como uma ferramenta embutida numa aplicação médica. A ferramenta já está em uso pelos especialistas da saúde do domínio de conhecimento cardiorespiratório, e não foram observadas dificuldades no processo de tradução. As traduções de escopo geral estão sendo realizadas por pessoas com conhecimento técnico de computação. Até o momento, foram traduzidas todas as sentenças da área médica, possibilitando rapidamente a obtenção de uma versão localizada para o idioma Inglês do SacarWeb. Devido a isso, acreditamos que quando necessária a localização para outros idiomas, ao se ter uma equipe com domínio do idioma desejado, rapidamente o objetivo será atingido novamente. Acredita-se que o sucesso e agilidade nesse processo se deve à eliminação de barreiras técnicas para usuários com outras especialidades, que podem colaborar com seu conhecimento, tanto de idiomas quanto de sua área de especialidade, com maior facilidade.

\bibliographystyle{sbc}
\bibliography{fisl10}

\end{document}
